package domain.model.project;

import shared.model.Entity;

import java.util.List;

/**
 * @author Gregory Boissinot
 */
public interface Project extends Entity<Project> {

    public ProjectId getProjectId();

    public ProjectSCM getProjectSCM();

    public ProjectStatus getStatus();

    public String getDescription();

    public ProjectType getProjectType();

    public String getTemplateLocalFilePath();

    public Project copyWithNewProjectSCM(ProjectSCM projectSCM);

    public Project copyWithNewProjectDevelopers(List<ProjectDeveloper> projectDeveloperList);

    public Project copyWithNewStatus(ProjectStatus projectStatus);
}
